PARTITION BY
特徴
GROUP BY句のカット機能とORDER BY句の順序付けの機能を併せ持つ
PARTITION BYで区切られた集合をウィンドウ(範囲)と呼ぶ
GROUP BYとの違いは?
GROUP BYは分割後に集約して一行にまとめる
原則SELECT句で使えると考える
RANKなどを算出したあとにwhereで条件を絞ったり、group byで集約するとおかしなことになる
一方、order byはSELECT句より後で実行される(=これ以上レコードの増減がない)ため使える
ROW_NUMBER()の利用しすぎに注意
内部的にはGROUP BYとほぼ同じ処理
参考